Skip to content

Latest commit

 

History

History
762 lines (528 loc) · 68.7 KB

Stundenprotokoll Wetterstation.md

File metadata and controls

762 lines (528 loc) · 68.7 KB

--> TheWeather <--

Wetterstation auf Basis des Arduino -- Stundenprotokoll

Inhalt

  • 1. Einleitung
  • 2. Stundenprotokoll
  • 3. Materialien
  • 4. Quellen

  • 1. Einleitung

    Für viele Menschen gehört es zu der Morgenroutine, nach dem Aufstehen aus dem Fenster zu gucken und die Temperatur zu schätzen, damit man sich passend anziehen kann. Oftmals verschätzt man sich und es kommt zu ungewolltem und unnötigen Stress am frühen Morgen, da es überraschend doch wärmer oder kälter ist.
    Für genau dieses Problem lässt sich einfache Abhilfe schaffen. Eine Wetterstation, die die Temperatur übermittelt, wäre hierfür ideal. Ein kurzer Blick auf eine Webseite im Internet genügt, um Gewissheit über die Temperatur zu haben. Dieser Blick kann auch einfach über das sowieso am Bett liegende Smartphone geschehen. Zudem ist jeder Wetterinteressierte dazu eingeladen sich seine eigene Wetterprognose für den Tag zu machen, da die Wetterstation neben der Temperatur auch Daten zur Luftfeuchtigkeit, dem Luftdruck und der Lichtintensität liefert. Mit einem schönen Design stört die Wetterstation auch nicht beim Blick aus dem Fenster. Unsere Wetterstation ist eine hervorragende Art das Aufstehen zu erleichtern und überflüssigen Stress zu vermeiden - so steht man gerne auf!

    contributors:
    @Obeliks003
    @xxxGernchenxxx
    @TheMoonlandingV2


    Unsere Projektseite enthält Erläuterungen zu unserer Wetterstation und zusätzlich eine abschließende Bewertung unseres Projektes.

    Hier gelangt man zu unserem README.md zu einer besseren Übersicht.

    Auf unserer eigenen Website werden die von der Wetterstation gemessenen Daten gespeichert und können eingesehen werden.

    2. Stundenprotokoll

    Dienstag 03.08.2021
    Wir haben einen GitHub Account erstellt und eine Projekt-Idee entwickelt. Unsere Ideen reichten von einem einfachen Spiel bis zum Bau einer Wetterstation, für welche wir uns auch entschieden haben. Am Nachmittag haben wir mit dem Arduino erste Experimente mit LEDs durchgeführt, um uns mit der Entwicklungsumgebung des Arduinos und den möglichen Anschlüssen vertraut zu machen. Dabei haben wir z.B. eine grüne LED an digitalen Pin 13 und einen rote LED an den digitalen Pin 4 angeschlossen. Digitale Pins sind nur auf digitale Signale ausgelegt, geben diese entweder aus oder lesen sie ein. Digitale Signale sind z.B. 0 und 1 oder LOW und HIGH oder 0v und 5V (Volt). Das bedeutet, dass wir die zwei LEDs unabhängig von einander blinken lassen konnten. Status HIGH bedeutet LED an und LOW LED aus.

    Mittwoch 04.08.2021
    In der heutigen Stunde haben wir gemeinsam mit dem Arduino Fortschritte mit der Bedienung der LEDs gemacht. Am Nachmittag haben wir getrennt Experimente z.B. mit Bewegungssensoren durchgeführt. Diese waren nur zum Teil erfolgreich. Der Bewegungssensor hat zwar Bewegungen erkannt und auch wie programmiert bei der angeschlossenen LED den Status auf HIGH (an) gesetzt, manchmal hat der Sensor aber auch ohne eine Bewegung die angeschlossene LED aktiviert. Dies könnte an den schlechten Lichtbedingungen liegen, die Abends herrschen.

    Dienstag 10.08.2021
    Heute haben wir eine Liste unserer benötigten Sensoren und deren Funktion in unserer Wetterstation zusammengestellt. Diese sind unten mit der jeweiligen Funktion und zugehöriger Produktbeschreibung zu finden. Anschließend haben wir uns das Design der Wetterstation eingehender überlegt. Eine Konstruktion, die aus einem Gehäuse in Form eines Hauses bestehen soll, wie die unten stehende Skizze verdeutlichen soll. Hier sind die Abmessungen unserer Konstruktion ebenfalls abzulesen.


    Welche Sensoren sollen eingebunden werden?

    SensorFachterminusProduktbezeichnung
    TemperaturThermometerProdukt: BME280
    LuftfeuchtigkeitHygrometerProdukt: BME280
    LuftdruckBarometerProdukt: BME280
    HöheAltimeterProdukt: BME280
    Sonnenscheindauer/-intensitätFotowiederstandProdukt: BN2134129

    Eine Liste aller Materialien, ist hier zu finden.

    Grobe Skizze des Arduinogehäuses:

    image

    Dienstag 24.08.2021
    An diesem Tag haben wir weiter an unserem Design gefeilt und uns Ideen zur Materialauswahl, Größe und Aufstellungsart gemacht. Zudem haben wir uns für die technischen Komponenten im Inneren die Anordnung überlegt, um eine einfache sowie intuitive Bedienung mit freundlichen Wartungsbedingungen zu ermöglichen. Außerdem haben wir unsere GitHub Seite verbessert und mit einer Einleitung versehen. Zuhause haben wir mit den Sensoren schon ein bisschen programmiert. Auch haben wir an einem möglichen Konzept, die von der Wetterstation erfassten meteorologischen Daten in einer Excel-Tabelle auszuwerten, gearbeitet (siehe Screenshot). Dabei wurden mit einem Test-Programm fiktive Werte für Temperatur und Niederschlag generiert und im Seriellen Monitor angezeigt.

    Screenshots Dienstag 14.08.2021

    Screenshot (83)

    Code für das fiktive Testprogramm

    Screenshot (82)

    Ausgabe im Seriellen-Monitor

    Screenshot (81)

    Auswertung der Daten in Excel mit Bildung eines Mittelwertes aus den fiktiven Werten.

    Mittwoch 25.08.2021
    Diese Stunde haben wir dazu genutzt, unser Design weiterzuentwickeln. Dabei haben wir unser Design hinsichtlich der Funktion der Sensoren angepasst, dass man möglichst genaue Messwerte erhält, ohne die Sensoren zu beschädigen. Letztendlich haben wir ein Design ausgewählt, das funktional sehr gut zu unserem Projekt passt und zusätzlich mobil und in jedem Garten aufstellbar ist. Außerdem haben wir bereits erste Sensoren ausprobiert. Bezüglich der Auswertung hatten wir besonders beim Temperatursensor Erfolg und konnten am Ende der Stunde die Temperatur am Bildschirm ablesen.

    Dienstag 31.08.2021
    Diese Stunde bot uns die Möglichkeit, in der Sammlung neue Sensoren für unsere Wetterstation zu suchen. Wir haben der Sammlung ein Datalogging-Shield und den Sensor BME280, den wir ursprünglich bestellen wollten, entnommen. Diese neuen Bestandteile bieten uns unterschiedliche Möglichkeiten. So kann der Sensor BME280 von der Firma Bosch die Temperatur, die Luftfeuchtigkeit und den Luftdruck bestimmen. Mit dem gemessenen Luftdruck kann außerdem die Höhe über dem Meeresspiegel berechnet werden. Mit dem Data Logging-Shield können wir die erhobenen meteorologischen Daten auf einer SD-Speicherkarte sichern. Als weiterführende Planung hat sich Henrik bereits mit der Idee beschäftigt, wie wir die meteorologischen Daten visualisieren und damit auch auswerten können. Er hatte die Idee, diese Daten auf einer Website darzustellen und versuchte einen I-Frame für eine Tabelle zu verwenden. Thorben hat sich in der Stunde damit beschäftigt, den Code für den BME280 Sensor zu entwickeln. Dies gestaltete sich deshalb umständlich, weil der Sensor stark Erschütterungsabhängig ist. So gab der angeschlossene Sensor nach zwei korrekten Messungen aufgrund minimaler Bewegung einen falschen Wert (z.B. statt 23,5°C einen falschen Wert von 150°C). Währenddessen hat Gernot ein Erdbebenwarnsystem mit einem Erschütterungssensor entwickelt. Dieses gibt bei einer Erschütterung eine Warnung auf den Seriellen Monitor aus, die ständig angepasst werden kann. Das Problem an diesem Sensor ist die aufzuwendende Kraft, um den Sensor überhaupt auszulösen. Deshalb würde dieser Sensor wahrscheinlich eher keine Anwendung in dem Projekt finden.

    Mittwoch 01.09.2021
    Nachdem wir in der letzten Doppelstunde bei der Genauigkeit des BME280 Sensors Probleme hatten und leider falsche Werte gemessen haben, mussten wir uns in der heutigen Stunde mit dem Debuggen des Sensors beschäftigen. Zum Ende der Stunde sind wir zu der Erkenntnis gelangt, dass eines der Jumper-Kabel einen Wackelkontakt haben muss oder die Kontaktverbindung des Sensors, weshalb teilweise falsche Werte übermittelt wurden. Dieses Problem haben wir behoben, indem wir den BME280 erstmal provisorisch mit Tesa-Film an die Jumperkabel geklebt haben. In der finalen Installation des BME280 an der Wetterstation müssen wir uns überlegen, ob wir den Sensor ebenfalls verkleben oder an die Jumper-Kabel löten. Dieses könnte im Zweifelsfall nötig sein, weil wir sonst im Betrieb falsche Werte mit der Wetterstation erfassen. Wie aber in den unten folgenden Screenshots zu sehen ist, funktionieren die Messungen des BME280 nun bis auf die Höhenangabe genau. Diese scheint noch immer fehlerhaft zu sein. Die Raumtemperatur von ca. 25°C und einer Luftfeuchtigkeit von ca. 50% konnten wir aber mit unserer eigenen Wetterstation beweisen. Auch der Luftdruck von 1018hPa entspricht den aktuellen meteorologischen Daten. Nebenbei haben wir uns in der Stunde mit der Implementierung eines Fotowiederstandes beschäftigt und das Projekt mit dem Erschütterungssensor weiter verfolgt. Hier haben wir ein kleines Programm geschrieben, dass bei einer Erschütterung, die der Sensor erkannt hat, eine Warnung auf den seriellen Monitor ausgibt. Dieses Programm funktioniert auch für sich genommen sehr gut, jedoch braucht der Sensor eine sehr starke Erschütterung, um diese wahrzunehmen. Deshalb haben wir uns gegen einen Einbau in das Schutzhäuschen entschieden. Dies war also nur ein Ausflug in die Informatik, um weitere Kentnisse zu gewinnen.

    Programm für den Erschütterungssensor

    Erschütterungssensor

    Screenshots Mittwoch 01.09.2021

    Screenshot (82)

    Code für den Sensor BME280

    Screenshot (81)

    Ausgabe der gemessenen Daten auf dem Seriellen Motitor.

    Dienstag 07.09.2021
    In der heutigen Doppelstunde haben wir zuerst an verschiedenen Projekten gearbeitet. Henrik hat an einer Lösung gearbeitet, eine Excel-Datei auf einer Website mit einzubinden, damit wir unsere meteorologischen Messwerte visualisieren können. Währenddessen hat Thorben versucht, auf den Arduino ein Datalogging-Shield zu setzen und Gernot hat an einem LCD-Display gearbeitet, worauf im Finalen Aufbau die Ergebnisse der Sensorenauswertung gezeigt werden sollen. Doch nachdem wir Ihnen unser Problem mit den falschen Messwerten beim BME280 Sensor geschildert hatten, haben wir uns dazu entschlossen, in der restlichen Stunde das Löten von elektronischen Bausteinen zu erlernen. Das Löten ist ein thermisches Verfahren, bei dem elektrisch leitende Verbindungen zwischen Feststoffen stoffschlüssig erschaffen werden. In unserem Fall haben wir eine 6 Pin (männlich auf männlich) Stiftleiste mit den 6 Pins am BME280 Sensor verlötet. Im Vorhinein konnten wir an einem T-Cobbler für den RaspberryPi das Löten ausprobieren. Unsere Verlötung an dem BME280 gelang uns gut und zeigte nach der Überprüfung am PC eine direkte Wirkung: wir konnten gleich richtige Sensordaten trotz einer minimalen Bewegung erheben. Dies ist ein großer Fortschritt im Gegensatz zu der vorherigen misslichen Lage und hat uns sehr gut weitergeholfen.

    Bilder zum Lötversuch

    20210907_160715

    Lötveruche am T-Cobbler

    20210907_161527

    Lötprozess am BME280 Sensor

    Mittwoch 08.09.2021
    Wie abhängig man von der digitalen Ausstattung ist, erkennt man, wenn man in der Informatik-Stunde sitzt und das Internet, sowie die Computer nicht funktionieren. Genau dies war heute der Fall. Die Server von IServ waren nicht betriebsbereit, weshalb wir die Informatik-Stunde "unplugged" gestalten mussten. Wie arbeitet man im Informatikunterricht ohne Computer produktiv? Wir haben die Zeit genutzt und uns erneut dem Design unserer Wetterstation gewidmet und eine Einkaufsliste für die Materialien erstellt, die Gernot am Donnerstag im Baumarkt erwerben wird. Als dann plötzlich das Internet wieder funktionierte haben wir uns die restlichen Minuten mit den jeweils aufgeteilten Projekten beschäftigt. Leider war das Internet währenddessen sehr langsam und erschwerte das Arbeiten. Zum Abschluss der Stunde konnten wir das vorgenommene Arbeitspensum wegen der technischen Schwierigkeiten am Anfang nicht erreichen. In der nächsten Doppelstunde arbeiten wir deshalb an dem letzten Arbeitsstand weiter und versuchen Zuhause, soweit möglich, weiter zu arbeiten.

    Dienstag 14.09.2021
    Heute ist der Informatikunterricht leider ausgefallen. Zuhause haben wir uns weiter mit dem Projekt beschäftigt. So hat Thorben weiter an dem Data Logging-Shield gearbeitet und ein Script geschrieben, das es uns ermöglichen soll, Daten auf einer SD-Karte zu speichern. Das Script funktioniert auch, jedoch gab es immer wieder die Fehlermeldung, dass die SD-Karte nicht gelesen werden kann (siehe Screenshot). Das kann mehrere Ursachen haben. Zum einen kann die Fehlermeldung an die Größe der SD-Karte gekoppelt sein. Ich habe eine 64GB SD-Karte verwendet und es kann sein, dass das Data Logging-Shield nicht mit derartig großen SD-Karten arbeiten kann. Diese Theorie halte ich aber nicht für sehr wahrscheinlich. Viel mehr denke ich, dass die SD-Karte falsch formatiert ist und deshalb nicht von dem Data Logging-Shield gelesen werden kann. Das Problem dabei war, dass man die 64GB SD-Karte nicht in das benötigte FAT Format umformatieren konnte. Daher haben wir zu Hause nach anderen kleineren und anders formatierten SD-Karten gesucht. Diese haben wir auch gefunden. Genutzt haben wir eine 4GB FAT32 formatierte SD-Karte. Mit dieser lief das Programm korrekt ab und erzeugte eine Excel-Datei mit allen Werten (Temperatur, Luftfeuchtigkeit, Luftdruck und Höhe über NN), die vom BME280 Sensor aufgenommen werden können. Um dies praktisch auch auszuprobieren, haben wir den Arduino im Garten probeweise mit einer externen Stromversorgung über ein USB-Ladegerät über drei Stunden meteorologische Daten sammeln lassen. Die Auswertung ist bei den Screenshots von Dienstag zu sehen. Die 4GB SD-Karte erwies sich in unserem Experiment als durchaus praktikabel einzusetzen, weil die generierte Excel-Datei lediglich 17kb Speicherlatz einnahm. Daher ist eine Erfassung der Daten über mehrere Tage möglich, ohne, dass der Speicherplatz überfüllt wird.

    Screenshots Dienstag 14.09.2021

    Screenshot (91)

    Code für die Auswertung des BME280 mit zusätzlicher Speicherung auf einer SD-Karte

    Screenshot (89)

    Fehlermeldung bei falsch formatierter oder nicht angeschlossener SD-Karte

    20210917_143554

    20210917_143728

    Aufbau des Arduinos mit Data Logging Shield und angeschlossenem BME280

    Screenshot (93)

    Auswertung der erzeugten Excel-Datei mit einem gebildetem Mittelwert

    Mittwoch 15.09.2021
    Heute ist der Informatikunterricht auch ausgefallen. Wir haben aber die Zeit genutzt und unser Repository überarbeitet. Die Struktur gefällt uns so jetzt gut. Wir haben Dropdowns für unsere Screenshots eingefügt, damit unser Stundenprotokoll übersichtlicher ist und uns mit dem Markdown Githubs intensiver beschäftigt. So haben wir auch eine Möglichkeit gefunden, Code als Beispiel mit einzubinden (siehe unten).

    <detials><summary>Beschreibung</summary>
    
    ![Screenshot (91)](https://user-images.githubusercontent.com/88386049/133761889-dd3925f9-6e66-4b34-8bda-93b4fa741d21.png)
    <p>Code für die Auswertung des BME280 mit zusätzlicher Speicherung auf einer SD-Karte</p>
    
    <details>
    

    Samstag 18.09.2021
    Wir haben am heutigen Tag mehrere experimentelle Messreihen mit dem Data Logging Shield durchgeführt. Alle Messungen verliefen dabei ohne Probleme, was uns sehr erleichtert hat. Eine Messreihe von 08:00 bis 11:00 Uhr morgens fanden wir sehr interessant. Bei den aufgezeichneten Daten sieht man den normalen Temperaturanstieg am Morgen sehr gut, doch fällt einem dann auf, dass die Temperaturen wieder leicht sinken. Die Ursache dafür ist, dass ein Schauer heranzog und dadurch die Temperatur gesunken ist, was man auch an der steigenden Luftfeuchtigkeit sehen kann. Leider konnten wir nicht im Schauer weiter messen, da unser Arduino noch kein wasserdichtes Gehäuse hat und daher bei schlechtem also feuchtem Wetter noch ins Trockene geholt werden muss. Trotzdem zeigt unsere Messreihe, dass wir einen großen Fortschritt gemacht haben.

    Auswertung der gemessenen Daten in Diagrammen

    Screenshot (9) Screenshot (10) Screenshot (11)

    Dienstag 21.09.2021
    Heute haben wir unterschiedlich gearbeitet. Henrik und Thorben haben in der Schule weitergearbeitet und Gernot ist aus gesundheitlichen Gründen zu Hause geblieben. In dieser Zeit haben wir weiter an unserem Projekt gearbeitet und den Rohbau des Häuschens verfeinert. Im nächsten Schritt müssen die einzelnen Sensoren und Platinen eingepasst werden, sodass nach weiterer Anpassung des Gehäuses eine erste Lackierung vorgenommen werden kann. Währenddessen hat Henrik an der Website weiter programmiert und noch verschiedene Sachen geändert. So hat die Website nun ein Hintergrundbild und die Anzeigekästchen haben abgerundete Ecken. Des weiteren sind die Farben einheitlich. Abschließend müssen wir uns nur noch auf eine Art einigen, wie wir die Messwerte genau darstellen wollen. Thorben hat mit dem Data Logging Shield an einer Lösung für eine zeitliche Erfassung der Messwerte gearbeitet. Dabei haben wir die im Data Logging Shield integrierte RTC (Real-Time-Clock) verwendet, um die Uhrzeit anzuzeigen. Dies ist insofern wichtig, als dass bei einer Messdauer von einem Tag bis zu einer Woche die Exceldatei zunehmend unübersichtlich wird, welche Daten wann erhoben wurden, weshalb eine zeitliche Kennzeichnung der Werte notwendig ist. Damit kann man feststellen, ob der Messwert in der Nacht oder während des Mittags gemessen wurde. Dies ist bei der Auswertung besonders von Bedeutung, weil wir so schon optisch feststellen können, welche Messwerte eventuell falsch sind.

    Screenshots Dienstag 21.09.2021

    Screenshot (96)

    Code für die RTC (Real-Time-Clock)

    Screenshot (97)

    Auf dem Seriellenmonitor wird die Uhrzeit in Stunde, Minute, Sekunde, sowie der Tag, Monat und das Jahr angegeben

    Mittwoch 22.09.2021
    Gernot konnte heute erfreulicherweise wieder mit uns gemeinsam in der Schule an unserem Projekt arbeiten. Er hat sich in dieser Stunde erneut dem Aufbau der Wetterstation gewidmet. Hier galt es nun eine für den schon fertigen Rohbau des Häuschens für die Wetterstation eine passende Konzeption für den Innenaufbau zu finden. Der Wunsch wurde laut, dass noch ein Display in die Außenwand integriert werden soll, was natürlich geplant sein muss. Somit wurde dann nach einem geeigneten Ort für den Arduino, das Display und die die Sensoren gesucht, die teilweise auch Licht brauchen oder zumindest großzügig von Luft umschlossen sein müssen, damit brauchbare Messergebnisse später genommen werden können. Thorben hat diese Stunde genutzt, um Fehler der RTC aus dem Code von gestern zu beheben. Das Problem der gestrigen Stunde war, dass die im Data Logging Shield eingebaute RTC (Real-Time-Clock) auf eine falsche Uhrzeit eingestellt war.

    Serial.print(hour() + 15);
    digitaleZahl(minute() - 7);
    digitaleZahl(second() + 12);
    Serial.print("  ");
    Serial.print(day() - 7);
    Serial.print("  ");
    Serial.print(month() + 6);
    Serial.print("  ");
    Serial.print(year() + 6);
    

    Mit diesem Code haben wir für die gestrige Stunde versucht, das Problem der verstellten Uhr kurzfristig und schnell zu beheben. Dass dies keine langfristige Lösung ist, war uns gestern bereits bewusst. Was entstand durch diese Korrektur mit addierten Werten? In der heutigen Stunde gab der Arduino über den Seriellen Monitor die Uhrzeit "36 Uhr, 22 Minuten und 73 Sekunden" aus. Als Lösung stand hier nur das Reseten der RTC im Raum. Da die Zeit gestern aber fehlte, die RTC des Data Logging Shields zu reseten, haben wir die heutige Stunde dafür genutzt. Die im Code eingesetzten Bibliotheken ermöglichten aber keine Lösung, weshalb wir ein Script aus dem Internet verwendet haben, um die RTC zu reseten und auf die aktuelle Uhrzeit einzustellen. Dies erwies sich auch als sehr erfolgreich, weil wir die RTC auf die Millisekunde genau auf die richtige Uhrzeit einstellen konnten. Am Wochenende hat Thorben das Prinzip der RTC in das Script des Data Logging Shields übertragen, damit bei jedem geloggtem Wert die Uhrzeit und das Datum mit abgespiechert werden. Die Arbeitsschritte sind auch in den unten eingefügten Screenshots zu sehen. Dies hat sehr erfolgreich funktioniert. Anschließend haben wir den Arduino über mehrere Stunden Daten sammeln lassen. In der Unterrichtsstunde hat Henrik weiter an der Website gearbeitet. Der Plan ist es die verschiedenen Tage in verschiedenen Kästchen darzustellen. Da eine Woche sieben Tage hat und es deswegen schwierig ist die Tage gleichmäßig auf mehrere Zeilen aufzuteilen, hat Henrik versucht alle sieben Tage in eine Zeile zu bekommen. Das hat auch weitestgehend funktioniert, allerdings war problematisch das Henrik über sein IPad arbeitet und dort der Bildschirm eine andere Auflösung hat als sein PC-Bildschirm zuhause. Letztendlich hat es trotzdem sehr gut geklappt und wir sind mit dem momentanen aussehen unserer Website sehr zufrieden.

    Screenshots Mittwoch 22.09.2021

    Screenshot (102)

    Screenshot (103)

    Code für das zusammengefügte Prinzip der RTC und des Data Logging Shields

    Dienstag 28.09.2021

    Da die an den vorherigen Tagen erhobenen Daten zwar richtig waren, aber nicht übersichtlich abgespeichert waren, konnten wir sie nicht auswerten und mussten einen neuen Testdurchlauf in der Informatikstunde durchführen. An dem unten stehenden Code kann man sehen, dass die Zeitangaben der jeweiligen Messung unter der Auflistung der Messwerte abgespeichert wird, da sowohl bei Zieldatei.println(Datensatz) als auch bei Zieldatei.println(Zeit) ein neuer Absatz erzeugt wird. Der überarbeitete Code ist unter den Screenshots des heutigen Tages zu sehen.

    if (Zieldatei) {
      Zieldatei.println(Datensatz);
      Zieldatei.println(Zeit);
      Zieldatei.close();
      }
    

    Deshalb war heute der Tag der Praxis! Wir haben den Arduino mit einem spezeillen Kabel an eine 9V Blockbatterie angeschlossen und ihn für eine Viertelstunde draußen auf der Fensterbank Werte aufnehmen lassen. Diese hat Thorben mit Excel ausgewertet (siehe Grafiken unten) und Henrik hat diese als erste Werte auf unserer Website eingebunden. Hierbei waren wir mit der momentanen Anzeige der Daten noch nicht ganz zufrieden, da Fotos direkt auf der Hauptseite sehr unordentlich und unübersichtlich sind. Den Rest der Stunde haben wir damit verbracht hierfür eine Lösung zu finden. Die Exceldiagramme als I-Frame einzubinden hat leider nicht funktioniert, weswegen wir die Fotos als alternative Lösung gewählt haben. Ein Screenshot der momentanen Hauptseite und dem zugehörigen Code sind trotzdem als Zwischenstand im Anhang zu finden. Gernot hat währenddessen an dem letzten Sensor gearbeitet, den wir mit einbinden wollen: Dem Fotowiederstand. Dieser misst die Intensität des Lichts bzw. der Sonne in Candela und gibt dann eine Zahl aus. Anhand von dieser Zahl lässt sich bestimmen, ob die vergangene Stunde eine Sonnenstunde oder "Schattenstunde" war. Somit haben wir in unserer Wetterstation eine weitere Möglichkeit, einen noch umfassenderen Wetterbericht zu erstellen. Der Code für diesen Sensor arbeitet mit einer einfachen if-else-Abfrage. Damit sind mit nur einer Variable zwei Ereignisse bzw. Ausgaben auf dem seriellen Monitor möglich. Diese Ausgabe passt sich automatisch an die Lichtverhältnisse an, indem es entweder schattig oder sonnig ist.

    Screenshot vom Code für den Lichtintensitätssensor

    Lichtintensitätssensor

    Screenshots Dienstag 28.09.2021

    Screenshot (106) Screenshot (107)

    Korrekter Source-Code für Data Logging Shield mit RTC und korrekter Speicherung

    grafik grafik grafik

    Auswertung der in der Stunde gemessenen Daten mit korrekter zeitlicher erfassung auf der X-Achse, sowie der Messwert-Größe auf der Y-Achse.

    index

    Stand der momentanen Hauptseite, noch ohne Werte.

    Code der Website
    <!DOCTYPE html>
    <html lang="de">
    
    <head>
        <meta charset="utf-8">
        <title>The Weather - Informatikprojekt</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
        
        <link href="css/style-test.css" rel="stylesheet">
    </head>
    
    <body style="background-image:url(kanadaback.JPG)">
    
        <header>
            <h1 class="headline">The Weather</h1>
        </header>
    

    Grundeinstellungen für den Html-Code und Überschrift der Hauptseite

    <section class="tage">
                <section class="wochentag">
    
                    <h2>Montag 06.09.2021</h2>
                    <p>Temperatur:</p>
                    <p>Niederschlag:</p>
                    <p>Graph: <a href="wochen/woche1/tag1">Hier klicken!</a></p>
    
                </section>
    </section>
    

    Beispiel Html-Code für einen Tag

    *,
    *::before,
    *::after {
        box-sizing: border-box;
    }
    
    
    body {
        box-sizing: border-box;
    }
    
    .headline {
        text-decoration: underline;
        max-width: 1800px;
        margin: 0 auto;
        padding: 10px;
        margin-bottom: 25px;
    }
    
    .box {
        display: flex;
        margin: 0 auto;
        max-width: 1800px;
    }
    
    .bild {
        width: calc(100% /3);
        padding: 5px;
        margin-right: 10px;
        margin-bottom: 10px;
        margin-top: 10px;
    }
    
    .bild img {
        width: 100%;
    }
    
    .bild3 {
        width: calc(100% /3);
        padding: 5px;
        padding-right: 0px;
        margin-bottom: 10px;
        margin-top: 10px;
    }
    
    .bild3 img {
        width: 100%;
    }
    
    .backbox {
        max-width: 1800px;
        margin: 0 auto;
    }
    
    .back {
        margin-top: 20px;
        width: 85px;
        height: auto;
    }
    
    .back a {
        text-decoration: underline;
        color: black;
        font-size: 25px;
        padding: 5px;
    }
    
    

    CSS-Code für das Styling der Hauptseite

    Arduino für eine Messreihe auf der Fensterbank

    Arduino auf Fensterbank-2

    Arduino auf Fensterbank Seite

    Mittwoch 29.09.2021
    Wir hatten heute keinen Informatikunterricht, weil wir den gesamten Vormittag über die Vorabitur-Deutsch-Klausur geschrieben haben. Nachmittags haben wir aber trotzdem die Gelegenheit genutzt und weiter am Repository gearbeitet. So haben wir jeweils einen Link zu den Stunden im Stundenprotokoll erstellt.

    Samstag 02.10.2021
    Heute haben wir den Arduino weiter draußen mit angeschlossener 9V Blockbatterie meteorologische Daten sammeln lassen. Die Daten wurden auf der SD-Karte gespeichert und wieder in Excel mit Diagrammen ausgewertet und sind unter dem untenstehenden Dropdown zu sehen. Die Durchschnittstemperatur im Messzeitraum ist 16,27°C, die Durchschnittsluftfeuchtigkeit betrug 73,95% und der Luftdruck lag durchschnittlich bei 1003,74 hPa. Gemessen wurde im Zeitraum von 15:20 Uhr bis 20:30 Uhr mit einer Erfassung der Werte in einem 10 Minuten Rhythmus.

    Auswertung der gemessenen Daten

    grafik grafik grafik

    Sonntag 03.10.2021
    Auch heute haben wir den Arduino meteorologische Daten sammeln lassen. Leider ist heute nur ein eingeschränkter Datensatz vorhanden, weil die 9V Blockbatterie nach ca. zwei Stunden unvorhergesehen leer war. Trotzdem wurden Daten vom heute gemessen und gespeichert. Die Durchschnittstemperatur war im Messzeitraum 18,76°C, die Durchschnittsluftfeuchtigkeit betrug 71,14% und der Luftdruck betrug durchschnittlich 995,16 hPa. Gemessen wurden die Daten in einem Zeitraum von 09:36 Uhr bis 11:26 Uhr, welche in einem 10 Minuten Rhythmus erhoben wurden. Die Auswertung erfolgte erneut mir Excel und ist unter den unten stehenden Dropdown zu sehen.

    Auswertung der gemessenen Daten

    grafik grafik grafik

    Samstag 09.10.2021
    Heute wurden erneut Testweise Daten im Zeitraum von 10:36 Uhr bis 19:06 Uhr erfasst. Dabei war erneut die Batterie das Problem, welche nicht den ganzen Messzeitraum den Arduino mit Strom versorgen konnte, weil die nötige Betriebsspannung von 6-12V nicht erreicht wurde. Daher konnte die Messung nicht wie geplant bis 22:46 Uhr gehen. Die mittlere Temperatur betrug im Messzeitraum 16,65°C, die Luftfeuchtigkeit lag durchschnittlich bei 47,11% und der mittlere Luftdruck betrug 1027,72 hPa. Die Auswertung der erzeugten Daten geschah wie gewohnt bei Excel. Die erstellten Diagramme, sind unten unter dem Dropdown zu sehen.

    Auswertung der gemessenen Daten

    grafik grafik grafik

    Sonntag 10.10.2021
    Mit einer neuen 9V Blockbatterie versorgt, wurden heute mit dem Arduino erneut Daten erfasst. Der Messzeitraum war von 08:50 Uhr bis 22:20 Uhr, wo die mittlere Temperatur 12,70°C betrug, die durchschnittliche Luftfeuchtigkeit lag bei 60% und der Luftdruck betrug durchschnittlich über den Zeitraum 1020,85 hPa. Meine Aussage bei den letzten Messversuchen, die Batterieleistung betreffend, ist zum Teil abzuändern, als dass auch die Temperatur als leistungsminimierender Faktor hinzukommt. Die Wetterstation hat durchschnittlich gegen 19:00 Uhr aufgehört, Daten zu sammeln. Dies liegt zum einen an den schwachen Batterien, aber auch an den abends herrschenden niedrigen Temperaturen, die die letzten Tage ungefähr in einem Bereich unter 10°C gelegen haben. Dies sorgt dafür, dass bei der Batterie schneller die Ausgangsspannung nachlässt. Heute habe ich versucht dieses Problem zu umgehen, indem ich um den 9V Block einen Handschuh und eine Styropor-Verpackung gelegt habe. Dies erwies sich als erfolgreich, weil ich bis 22:20 Uhr Daten messen konnte. Trotzdem habe ich im Anschluss die Leistung der 9V Blockbatterie gemessen. Zu Beginn der Messung erreichte die Batterie eine Ausgangsspannung von ca. 9V und nach dem Ende der Messungen nur noch ca. 7,2V. Man erkennt also tatsächlich einen nicht gerade geringen Abfall der Ausgangsspannung. Die Auswertung erfolgte erneut bei Excel und die erzeugten Graphen sind unter dem Dropdown zu sehen.

    Auswertung der gemessenen Daten

    grafik grafik grafik

    Montag 11.10.2021
    Heute wurden erneut Daten erhoben. Leider hat die 9V Blockbatterie den Arduino nur in einem Zeitraum von 08:50 Uhr bis 10:25 Uhr mit Strom versorgen können. Da uns das nicht aufgefallen war, konnten wir die Batterie nicht wechseln. Beabsichtigt war eigentlich ein Messzeitraum von 08:50 Uhr bis 23:00 Uhr. Die gemessenen Daten werden trotzdem in ausgewerteter Form in Diagrammen unter dem Dropdown zu sehen. Auch werden die Durchschnitte ab heute, wie unten zu sehen ist, Form einer Tabelle dargestellt.

    Werte
    Mittelwert der Temperatur12,71°C
    Mittelwert der Luftfeuchtigkeit79,76%
    Mittelwert des Luftdrucks1017,29hPa
    Auswertung der gemessenen Daten

    grafik grafik grafik

    Dienstag 12.10.2021
    Heute haben wir statt der 9V Batterie eine Powerbank als Stromversorgung eingesetzt. Die Hoffnung war, dass die Wetterstation damit verlässlicher Daten aufnehmen kann. Dies war aber nicht verlässlich der Fall. Der Arduino hat nur in einem Zeitraum von 12:24 Uhr bis 18:34 Uhr Daten erfasst und nicht wie geplant in einem Zeitraum von 07:40 Uhr bis 23:00 Uhr. Meine Vermutung ist, dass der Arduino nicht genug Strom verbraucht, um von der Powerbank erkannt zu werden. Trotzdem konnten wir Daten messen und auswerten. Die ausgewerteten Daten sind unter dem Dropdown zu sehen.

    Werte
    Mittelwert der Temperatur14,09°C
    Mittelwert der Luftfeuchtigkeit65,64%
    Mittelwert des Luftdrucks1010,78hPa
    Auswertung der gemessenen Daten

    grafik grafik grafik

    Mittwoch 13.10.2021
    Heute wurden der Arduino aus experimentellen Zwecken wieder mit einer 9V Batterie angetrieben. Das Problem war leider, dass der Arduino von 09:27 Uhr an nur bis 11:17 gemessen hat. Ich habe dies auch an der nicht leuchtenden Inbuilt-LED gesehen und geprüft, ob die Batterie leer sein. Dies war nicht der Fall, weshalb ich die Batterie wieder an den Arduino angeschlossen habe. Die LED leuchtete darauf hin und ich war mir sicher, dass der Arduino wieder Daten erhebe. Dies war aber anscheinend nicht der Fall. Die Inbuilt-LED hat zwar bis 22:00 geleuchtet, der Arduino hat aber keine weiteren Daten im Zeitraum von 11:17 Uhr bis 22:00 Uhr Daten gemessen.

    Werte
    Mittelwert der Temperatur10,14°C
    Mittelwert der Luftfeuchtigkeit77,09%
    Mittelwert des Luftdrucks1016,68hPa
    Auswertung der gemessenen Daten

    grafik grafik grafik

    Donnerstag 14.10.2021
    Der Arduino wurde heute wieder mit einer 9V Batterie mit Strom versorgt. Erfreulicherweise hat die Batterie einen Messzeitraum von 08:04 Uhr bis 18:14 Uhr durchgehalten. Die ausgewerteten Daten, sind in der Tabelle und unter dem Dropdown zu sehen.

    Werte
    Mittelwert der Temperatur14,29°C
    Mittelwert der Luftfeuchtigkeit80,34%
    Mittelwert des Luftdrucks1013,60hPa
    Auswertung der gemessenen Daten

    grafik grafik grafik

    Freitag 15.10.2021
    Die Stromversorgung haben wir heute erneut über eine 9V Batterie gewährleistet. Gemessen hat der Arduino Daten in einem Zeitraum von 11:04 bis 18:24 Uhr. Die mit Excel ausgewerteten Daten, sind unter dem Dropdown und in der Tabelle zu sehen. Seltsamerweise hat der Inbuilt-LED des Arduinos wieder auch über den Messzeitraum hinweg geleuchtet, weshalb ich dachte, dass der Arduino weiter Daten aufnimmt. Dies war aber nicht der Fall, weil die gemessenen Daten bis zu einer Uhrzeit von 18:24:17 Uhr gemessen und gespeichert wurden. Dieses Problem werden wir gemeinsam im nächsten Informatik-Unterricht besprechen müssen.

    Werte
    Mittelwert der Temperatur14,07°C
    Mittelwert der Luftfeuchtigkeit70,12%
    Mittelwert des Luftdrucks1008,51hPa
    Auswertung der gemessenen Daten

    grafik grafik grafik

    Samstag 16.10.2021
    Heute haben wir weiter an dem Gehäuse für den Arduino und die Sensoren gearbeitet. Nachdem verschiedene Wände und Leisten abgelängt wurden, wurden sie mit wasserfestem Holzleim und Heißklebe richtig aufgeklebt. Im nächsten Schritt wird nun alles Lackiert und dann ein erster, vorläufiger Einbau der Technik vorgenommen (Bilder unten unter dem Dropdown). Auch Daten wurden heute mit dem Arduino von 08:50 Uhr bis 17:30 erfasst. Wir hatten aber erneut das oben beschriebene Problem mit der Inbuilt-LED. Die LED hat (zwar mit verringerter Helligkeit) bis morgens um 09:20 geleuchtet, aber entgegen der Hoffnung, dass auch Daten erhoben wurden, wurden keine Daten gespeichert. Die Batterie hatte zu Beginn der Messungen eine Ausgangsspannung von ca. 9V und am nächsten Tag um 09:20 ca. eine Ausgangsspannung von 6,3V. Dies liegt eigentlich noch innerhalb der Parameter des Stromanschlusses, weshalb der Arduino eigentlich weiter Daten messen sollte und diese im Anschluss auch speichern. Trotzdem hat der Arduino in dem oben genannten Zeitraum (vom 08:50 Uhr bis 17:30) Daten gespeichert, die mit Excel ausgewertet wurden (siehe Dropdown).

    Werte
    Mittelwert der Temperatur12,05°C
    Mittelwert der Luftfeuchtigkeit68,64%
    Mittelwert des Luftdrucks1015,69hPa
    Auswertung der gemessenen Daten

    grafik grafik grafik

    Sonntag 17.10.2021
    Heute haben wir an der Website weiterprogrammiert und für die jeweiligen Tage untergeordnete Seiten erstellt, auf denen die Diagramme angezeigt werden die der Arduino gesammelt hat. Dies sorgt für mehr Ordnung und man kann sich gezielt die Informationen raussuchen, die man braucht. Damit haben wir auch das Problem mit den Fotos auf der Hauptseite gelöst. Diese untergeordneten Seiten können über einen Link bei dem jeweiligen Wochentag erreicht werden und beinhalten die Diagramme zu Temperatur, Luftfeuchtigkeit und Luftdruck. Außerdem verfügen die Seiten über einen Link zurück zur Hauptseite. Außerdem haben wir die Hauptseite überarbeitet, so dass nun eine ganze Woche in eine Reihe passt und die Datumangaben in der gleichen Zeile stehen wie die Wochentage, ohne dass etwas abgeschnitten ist. Ein Screenshot von einer untergeordneten Seite und der der zugehörige Code sind als Anhang angefügt. Der Arduino hat heute auch Daten in einem Zeitraum von 06:33 Uhr bis 18:43 Uhr erfasst. Dies schien heute als durchaus erfolgreich, weil der Arduino länger als 10 Stunden messen konnte, genau genommen konnten wir 12 Stunden und 10 Minuten Daten erheben. Die ausgewerteten Daten sind in der Tabelle und unter dem Dropdown zu sehen. Das Problem mit der Inbuilt-LED tauchte heute erneut auf. Ich kann mir dies bisher nur so erklären, dass der Arduino zwar noch mit Strom versorgt wird, die Spannung aber nicht ausreicht, um Daten zu speichern. Dieses Problem müssen wir auf jeden Fall im Unterricht weiter diskutieren.

    Werte
    Mittelwert der Temperatur13,05°C
    Mittelwert der Luftfeuchtigkeit67,05%
    Mittelwert des Luftdrucks1017,31hPa
    Auswertung der gemessenen Daten

    grafik grafik grafik

    Aussehen der untergeordneten Website mit beispielhaften Diagrammen vom 06.09.2021

    untergeordnete-seite

    Dienstag 19.10.2021
    In dieser Doppelstunde am Nachmittag haben wir damit begonnen, den Script für den Lichtintensitätssensor mit dem Script für die anderen Sensoren zu verbinden und damit ein einziges, funktionales Programm für den Arduino zu erstellen. Schwierigkeiten sind dabei die Strings nicht zu zerstören und somit alle Sensoren zu der vorgegebenen Zeit messen. Davor stellte sich noch die Frage, ob die Anschlüsse des Arduinos für manche Sensoren doppelt belegt werden müssen, was jedoch glücklicherweise nicht der Fall war. Weiter muss nun darauf geachtet werden, dass der Speicher des Arduinos für das gewünschte Programm ausreicht, da hiermit immerhin eine Realtimeclock, zwei Sensoren mit zusammen 5 Funktionen und die SD-Karte, die die Daten der Sensoren abspeichert, gesteuert werden. Außerdem haben wir an der Website weitergearbeitet und uns auf eine Anzeigeeinstellung geeinigt. Zu guter letzt haben wir auch am Repository weitergemacht, sodass es nun wieder auf dem aktuellsten Stand, mit vielen Bildern und Screenshots versehen, ist.

    Mittwoch 20.10.2021
    Heute haben wir uns weiter an der Vereinigung der beiden Programme vom Lichtintensitätssensor und dem der anderen Sensoren versucht und an der Website weitergearbeitet. In der Freistunde haben wir ebenfalls das Dach des Häuschens schon mit einem mattbraunem, wasserfesten Lack versehen, damit es auch bei Regenwetter die elektronischen Bauteile schützt.

    Der Anstrich wird vorbereitet

    20211020_113616

    Dienstag 26.10.2021
    Heute haben wir getrennt gearbeitet, da Thorben gesundheitlich leider zu Hause bleiben musste. In der Schule haben Henrik und Gernot gearbeitet. Thorben hat von Zuhause aus gearbeitet. Wir haben an unserer Internetseite weitergearbeitet und einige Fehler behoben. Währenddessen haben wir weiter an der Vereinung der beiden Programme gesessen und das Repository um eine weitere Kategorie "Werkzeuge" ergänzt.

    Mittwoch 27.10.2021
    Heute haben wir uns mit denselben Dingen wie gestern weiterbeschäftigt. Leider konnten wir auch heute nicht an einem Platz arbeiten, aber mit etwas Geschick war ein Arbeiten über Distanz auch gut möglich. Viel Absprache half uns dabei wirklich weiter. Wir haben zusätzlich eine Liste mit eingesetzten Bibliotheken bei den Materialien ergänzt.

    Dienstag 02.11.2021

    Bisher haben wir eine funktionierende Webseite für die Visualisierung unserer Messdaten. Diese ist allerdings sehr umständlich, da alle Daten und Diagramme manuell erzeugt und eingefügt werden müssen. Das ist sehr viel arbeitet, weswegen wir mit der Webseite noch nicht ganz zufrieden waren und nach einer Lösung gesucht haben, bei der es reicht lediglich die Datei mit den Messdaten hochzuladen. Hierfür haben wir eine Lösung gefunden, an der Henrik in den Stunden bis zum Ende des Projekts gearbeitet hat. Außerdem haben wir heute auch schon angefangen, diese Lösung umzusetzen und eine Datenbank für die gemessenen Daten erstellt. Dafür hat Thorben heute die Formatierung der gespeicherten Daten geändert. Die Informationen wurde zuvor um die Übersichtlichkeit zu unterstützen beispielsweise #Temperatur: 24°C gekennzeichnet. Diese Formatierung habe ich aufgehoben und wie unten stehend zu sehen ist, abgeändert. Bei dieser Arbeit entstand ein neues Problem: Die RTC (Real-Time-Clock) musste zuerst neu gestellt werden, da am vergangenen Wochenende die Zeit von der Sommerzeit auf Winterzeit umgestellt wurde. Dies ließ sich leicht beheben. Doch als wir die Daten in unsere Datenbank hochgeladen haben, ist uns aufgefallen, dass die RTC die Sekunden nicht immer zweistellig ausgibt. So wurde die Uhrzeit 16:23:01 als 16:23:1 ausgegeben. Dieses Problem habe ich versucht, mit einer neu geschriebenen Funktion zu beheben, dies war aber nicht möglich, da die void loop() Funktion die Ausgaben der geschriebenen Funktion nicht akzeptiert hat. Gernot hat währenddessen an unserer Projektseite gearbeitet und bereits Texte verfasst.

    Mittwoch 03.11.2021

    Gestern trat ein Problem auf, das gestern nicht mehr gelöst werden konnte, weil keine Zeit mehr blieb. Daher hat Thorben sich heute erneut um die Speicherung der Daten gekümmert. Im Laufe der Stunde ist uns eine Idee gekommen. Die Datenbank nimmt die Werte der CSV-Datei an und speichert diese unter einer bestimmten Kategorie ab. Für das Datum gilt in unserer Datenbank beispielsweise die Kategorie date und daher sind wir auf die Idee gekommen, dass wir vielleicht für die Uhrzeit eine Kategorie time finden können. Dies war auch unter den Möglichkeiten, weshalb von nun an die Daten, obwohl sie als 16:23:3 gespeichert werden, in die Datenbank als 16:23:03 aufgenohmen werden, was es uns ermöglicht, Diagramme und Tabellen korrekt zu erstellen. Momentan läuft die Datenbank nur lokal auf Henriks Laptop. Unser Ziel ist es langfristig die Website global von jedem internetfähigen Gerät aus zugägnlich zu machen. Da dieses Problem gelöst war, hat sich Thorben der Einbindung des letzten Sensors in den Code gewidmet: dem Lichtwiderstand. Dies hat zum Ende der Stunde auch funktioniert und es war uns möglich, alle gemessenen Daten inklusive der Lichtstärke in der CSV-Datei zu speichern. Das fertig überarbeitete Script ist unten unter dem Dropdown zu sehen. Gernot hat weiter an unserer Projektseite gearbeitet und eine Anpassung beim Aufbau unseres Repository vorgenommen. So findet man nun zuerst ein README.md File, wo man anschließend auf unser Stundenprotokoll und unsere Projektseite verwiesen wird.

    Fertig überarbeiteter Code

    Screenshot (110) Screenshot (111)

    Mittwoch 10.11.2021
    Nachdem der Arduino in den vergangenen Tagen fleißig Daten gesammelt hat, haben wir heute die Daten in unsere Datenbank übertragen. Insgesamt haben wir etwas über 48 Stunden gemessen und 286 Einträge erstellt. Da die Daten weiterhin über eine Webseite ausgegeben werden sollen, haben wir den Code der alten Webseite angepasst und mussten keine neue Datei erstellen. Diesmal werden die einzelnen Tage jedoch nicht einzeln aufgeführt, sondern über eine Schleife aus der Datenbank generiert. Hierbei war am Anfang problematisch, dass wir für einen Tag mehrere Messdaten hatten und somit jeder Tag so oft auf der Webseite aufgeführt wurde, wie Messdaten für diesen Tag vorhanden waren. Das haben wir so gelöst, dass die Messdaten nach Datum gruppiert werden und so jeder Tag quasi nur einmal vorhanden ist. Anschließend haben wir gemeinsam an unserer Projektseite weitergearbeitet. In den folgenden Tagen wird der Arduino wieder im Garten weiter Daten sammeln.

    Gruppierung der importierten Messdaten

    Grupprir

    Dienstag 16.11.2021
    Nachdem der Arduino vom Freitag 15:00 Uhr bis Dienstag 10:00 Uhr Daten messen sollte, war unsere Hoffnung groß, dass wir sehr viele neue Daten in unserer Datenbank übertragen können. In der Stunde stellte sich aber heraus, dass die Datei wohl beschädigt sei und deshalb nicht geöffnet werden konnte. Dies ist sehr schade, da der Aufwand, die Powerbank immer zu wechseln, sehr groß war, für eine beschädigte Datei. Wir erklären uns die Beschädigung der Datei mit einem unabgeschlossenen Vorgang des Arduinos, der bei fehlender Stromversorgung unterbrochen wurde. Aber heute konnten wir auch einen Fortschritt erzielen: unsere Website ist global online unter dem Link https://henrik.stormarnschueler.de/ erreichbar!
    Nebenbei haben wir heute an unserer Projektseite weitergearbeitet, dafür Skizzen angefertigt und die Funktionen der Sensoren beschrieben. Henrik hat weiter an einer Methode gearbeitet, wie wir unsere Daten graphisch aufbereitet darstellen können. Dies war jedoch nicht ganz einfach, da die bis dato genutzten Programmiersprachen HTML und Php sich nicht wirklich gut für graphische Datstellungen anbieten.

    Mittwoch 17.11.2021
    Heute haben wir weiter an der Projektseite gearbeitet. Wir haben Beiträge zu dem Sensor BME280 erstellt und diesbezüglich Recherchen angestellt. Gernot hat weiter an einer genauen Skizze des Arduino-Gehäuses gearbeitet, die in unserer Projektseite bei der Vorstellung des Projektes aufgeführt wird. Henrik hat an unserer Website gearbeitet. Unser Wunsch war es, neue Daten des Arduinos auch auf unserer globalen Website hochladen zu können. Dafür hat Henrik einen Upload-Button erstellt, welcher einen auf die Upload-Website weiterleitet. Hier tritt ein Problem auf: Wenn wir unsere Website global online stellen, kann jeder Dateien in unsere Datenbank hochladen. Unsere Website wäre somit leicht manipulierbar und zusätzlich leicht für Hacker angreifbar. Dieses Problem wollen wir durch einen passwortgeschützten Bereich umgehen. Dafür haben wir heute eine Idee entwickelt, die in den nächsten Stunde umgesetzt werden muss.

    Screenshots vom 23.11.2021

    Website

    Donnerstag 18.11.2021
    Heute war Henrik bei Andy Adiwidjaja und hat sich mit ihm über das Thema Php und Diagramme ausgetauscht. Der Kontakt zu Andy kam durch ein Praktikum in den Sommerferien von Henrik bei Adiwidjaja Teamworks GmbH zustande. Insgesamt hat Andy bei kleineren Problemen uns zur Seite gestanden und hat kleine Hinweise zur Problemlösung gegeben, ohne uns die komplette Lösung vorzusagen

    Dienstag 23.11.2021
    In dieser Doppelstunde waren wir leider nur zu zweit in der Schule. Gernot hatte Kopfschmerzen und hat die Skizzen für die Projektseite weitergezeichnet und ein bisschen am Gehäuse für die Wetterstation gebastelt. Währenddessen hat Henrik in der Schule an der Website weitergearbeitet. Hier sind im Moment noch einige kleinere Probleme an der Website aufgetreten, die aber in den letzten Stunden vor Abgabe nach und nach gelöst werden. So werden auf unserer Website als zusätzliche Information zu jedem Tag Diagramme für die Luftfeuchtigkeit, den Luftdruck, die Temperatur und die Lichtintensität angezeigt. Das Problem besteht aber leider in der Tatsache, dass in jedem Diagramm nur ein Wert aus der Datenbank für den Tag gezeigt wird. Thorben hat einen digitalen Schaltplan unserer Wetterstation bei TinkerCAD erstellt. TinkerCAD ist eine kostenlose Web-App zur Bearbeitung und Erstellung von 3D-Objekten, Schaltplänen und anderen technischen Skizzen. Der Vorteil dieser Web-App besteht in der Möglichkeit, Code z.B. für den Arduino direkt im Browser implementieren zu können. Die Ausführung des Codes wird im Browser anschließend mit Beteiligung der im Schaltplan angeschlossenen Bauteile simuliert.

    Screenshots vom 23.11.2021

    Schaltplan

    Mittwoch 24.11.2021
    Heute waren wir wieder alle in der Schule. Wir haben heute kleine Probleme an der Website und einige Verbesserungen an der Projektseite vorgenommen. Henrik hat die Graphen optisch überarbeitet und weiter an unsere Vorstellungen angepasst. Die Farbe der Graphen wurde von Gelb (welches zu Testzwecken eingesetzt wurde) zu einem Grau geändert. Zusätzlich wurde die Größe der Diagramme so verändert, dass zwei nebeneinander mit ausreichend Platz zu dem Margin sind. Die zwei folgenden Diagramme sind unter den ersten beiden gleichermaßen angeordnet. Für diese Änderungen haben wir CSS verwendet. Neben diesen Tätigkeiten haben wir auch den gestrigen Beitrag im Stundenprotokoll weiter ergänzt und weiter für unsere Projektseite recherchiert.

    Freitag 26.11.2021
    Henrik hat heute das Problem der Daten im Diagramm behoben. Das Problem, dass nur ein Wert angezeigt wird, bestand darin, dass die Funktion, die die Diagramme erstellt nur einen Wert aus der Datenbank ziehen kann. Um das zu lösen, werden alle Werte für den Tag in eine Liste verpackt und diese Liste dann an die Funktion übergeben. Es werden nun alle erfassten Daten im Diagramm gezeigt (Siehe Screenshot 1). Zusätzlich hat Henrik die Funktion hinzugefügt, bei der bei jedem eingezeichnetem Wert der genaue Wert als Pop-Up-Feld angezeigt wird (Siehe Screenshot 2).

    Diagramme auf der Website

    Diagramme

    Screenshot (113)

    Dienstag 30.11.2021
    In dieser Doppelstunde haben wir die Projektseite weiterbearbeitet und die Website verfeinert. So haben wir einen Passwortschutz für unsere Upload-Seite eingefügt, damit unsere Datenbank nicht von Außenstehenden manipuliert werden kann. Falls das Passwort falsch oder nicht eingegeben wurde, wird die einzufügende Datei nicht akzeptiert und daher auch nicht in unsere Datenbank eingefügt. Bei falscher Passworteingabe wird man über einen Link auf die Hauptseite weitergeleitet. Diese aktuellere Version haben wir dann auch auf der globalen Website hochgeladen. Wir haben am Wochenende mit dem Arduino neue Werte gemessen und heute in die Datenbank unserer Website übertragen. Zuerst haben wir den Vorgang auf unserer lokalen Seite ausprobiert und anschließend auf unserer global erreichbaren Website eingebettet. Da wir sowohl Sonntag, Montag aber auch noch am Dienstag Daten gemessen hatten, war die Datei auch verhältnismäßig groß. Insgesamt wurden ca. 500 Werte gespeichert. Der Messabstand beträgt 10 Minuten und es wurde vom 28.11.2021 12:53 Uhr bis zum 30.11.2021 09:55 Uhr Daten gemessen. Die Implementierung dieser Daten und des Passwortschutzes funktionierte problemlos. Bei der Implementierung ist uns noch die Idee eingefallen, dass wir auf unserer Details-Seite noch einen Zurück-Button einfügen sollten.

    Screenshots vom Dienstag 30.11.2021

    Website

    Unsere Website mit neu eingefügten Daten vom 28.11.2021, 29.11.2021 und 30.11.2021

    Passwort

    Der Passwortschutz unserer Upload-Website

    jejrghr 1738

    Bei Falscheingabe des Passworts erscheint eine Verlinkung zur Hauptseite

    Mittwoch 01.12.2021
    An diesem Tag haben wir das Stundenprotokoll auf Rechtschreibfehler überpüft. Dazu haben wir den Text in Microsoft Word kopiert und mit der automatischen Rechtschreiberkennung den Text auf Fehler überprüft. Nun konnten wir einfach die Fehler direkt bei Word sehen und konnten auf dem zweiten Monitor im Bearbeitungsbereich bei GitHub die Kleinigkeiten beheben. Weiterhin haben wir an der Website ein Hintergrundbild auch auf der Seite der Diagramme "eingebaut" und die Projektseite weiter vervolltändigt. Auf der Detailsseite haben wir auch einen "Zurückbutton" hinzugefüg. Zum Ende der Stunde haben wir einen Testlauf auch auf der globalen Website gemacht, damit wir sicher gehen können, dass die Sachen, die auf der lokalen Website funktionieren auch auf der globalen Website einwandfrei funktionieren. Ebenfalls haben wir mit der Erklärung des Sketches in Form einer Tabelle begonnen.

    Freiag 03.12.2021
    Da wir am Donnerstag mit unserer Sprechprüfung in Englisch schon alle an der Reihe waren und Freitag auch frei hatten, konnten wir uns bei Gernot treffen und die letzten Schritte zum fertigen Projekt zusammen erledigen. So haben wir zum Beispiel einige Bilder im Stundenprotokoll eingefügt, die letzten Schreibfehler behoben und darauf geachtet, dass alles stringend und verständlich dargestellt ist. Ebenso haben wir auf der Projektseite die letzten Texte fertiggestellt und weitere Bilder eingefügt. Zu guter Letzt haben wir den Arduino mit Breadboard und Sensoren im vorgefertigten Häuschen eingebaut und noch letzte Fotos gemacht.

    Samstag 04.12.2021
    An dem letzten Samstag vor der Abgabe des Projektes haben wir uns nocheinmal via Skype getroffen und die Dinge, die wir am vorherigen Tag nicht mehr geschafft haben zu Ende gemacht. So haben Henrik und Thorben die Tabellen auf der Projektseite, wo der Code der Webseite mit den Erklärungen gegenübergestellt wird, komplementiert. Hier war besonders die Schwierigkeit Zeilenumbrüche zu erschaffen, da es vorher entweder nur eine lange Zeile Text oder doppelte Absätze gab. Insofern mussten die Zeilenumbrüche manuell gesetzt werden. Währenddessen hat Gernot einige Texte auf Fehler inhaltlicher, aber auch orthografischer Art, geprüft.

    3. Materialien

    Hier ist eine Liste mit allen Materialien, die wir für unsere Wetterstation brauchen. Alle eingesetzten Materialien sind mit einem Haken gekennzeichnet:

    Experimentelle Bausteine:

    • Bewegungssensor -> LK-PIR (www.linkerkit.de)
    • Rote, grüne, weiße und gelbe LED-Dioden von unterschiedlichen Herstellern
    • Piezo-Summer -> PKM22EPP-40
    • Potentiometer 10K
    • Erschütterungssensor -> BN 2134050 MakerFactory
    • Sonnenscheindauer/-intensität -> Fotowiederstand -> Produkt: BH 1750 12C (Ursprünglich geplant, dann aber verworfen und durch BN 2134129 ersetzt)


    Eingesetzte Sensoren:

    • Temperatur -> Thermometer -> Produkt: BME280
    • Luftfeuchtigkeit -> Hygrometer -> Produkt: BME280
    • Luftdruck -> Barometer -> Produkt: BME280
    • Höhe -> Altimeter -> Produkt: BME280
    • Lichtempfindlichkeitssensor -> BN 2134129 von MakerFactory


    Eingesetzte Bibliotheken

    • Wire.h
    • DS1307RTC.h
    • SPI.h
    • SD.h
    • Adafruit_Sensor.h
    • Adafruit_BME280.h


    Weitere technische Bauteile:

    • Arduino UNO R3
    • Breadboard
    • LCD Display
    • Data Logging-Shield mit RTC-> XD-204 Data Logging Shield
    • 4GB SD-Karte
    • Stromversorgung für den Arduino im Haus (Batterie oder Akkumulator) -> 9V Blockbaterie mit Power-Jack
    • Stromversorgung auch möglich über 5000mAh Powerbank
    • Jumper Kabel Anzahl hier!!


    Bauteile für das Gehäuse der Wetterstation:

    • Holz in verschiedenen Formen und Arten: Pappel, Buche, Leisten, Bretter
    • Beschläge, Winkel und Schrauben
    • Farben
    • Acrylglas
    • Holzleim, Allzweckkleber, Silikon


    Benuzte Werkzeuge:

    • Elektrische Laubsäge von Proxxon
    • ELektrische Kreissäge von Proxxon
    • Schraubzwingen
    • Handsäge
    • Bohrmaschine mit verschiedenen Bohrnadeln
    • Akkuschrauber mit verschiednen Bits (Spax, Torx)
    • Schleifpapier, Feilen
    • Stahllinial, Geodreieck, rechter Winkel

    4. Quellen

  • file:///G:/Klasse%2012bc/Informatik/DE_SolderComic_L%C3%B6ten_loeten.pdf
  • Arduino Kompendium, Danny Schreiter, {BMU VERLAG}
  • https://guides.github.com/features/mastering-markdown/
  • https://docs.github.com/en